package com.jsh.erp.datasource.entities;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PromotionItemExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PromotionItemExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andHeaderIdIsNull() {
            addCriterion("header_id is null");
            return (Criteria) this;
        }

        public Criteria andHeaderIdIsNotNull() {
            addCriterion("header_id is not null");
            return (Criteria) this;
        }

        public Criteria andHeaderIdEqualTo(String value) {
            addCriterion("header_id =", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdNotEqualTo(String value) {
            addCriterion("header_id <>", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdGreaterThan(String value) {
            addCriterion("header_id >", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdGreaterThanOrEqualTo(String value) {
            addCriterion("header_id >=", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdLessThan(String value) {
            addCriterion("header_id <", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdLessThanOrEqualTo(String value) {
            addCriterion("header_id <=", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdLike(String value) {
            addCriterion("header_id like", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdNotLike(String value) {
            addCriterion("header_id not like", value, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdIn(List<String> values) {
            addCriterion("header_id in", values, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdNotIn(List<String> values) {
            addCriterion("header_id not in", values, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdBetween(String value1, String value2) {
            addCriterion("header_id between", value1, value2, "headerId");
            return (Criteria) this;
        }

        public Criteria andHeaderIdNotBetween(String value1, String value2) {
            addCriterion("header_id not between", value1, value2, "headerId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdIsNull() {
            addCriterion("material_id is null");
            return (Criteria) this;
        }

        public Criteria andMaterialIdIsNotNull() {
            addCriterion("material_id is not null");
            return (Criteria) this;
        }

        public Criteria andMaterialIdEqualTo(String value) {
            addCriterion("material_id =", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotEqualTo(String value) {
            addCriterion("material_id <>", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdGreaterThan(String value) {
            addCriterion("material_id >", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdGreaterThanOrEqualTo(String value) {
            addCriterion("material_id >=", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdLessThan(String value) {
            addCriterion("material_id <", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdLessThanOrEqualTo(String value) {
            addCriterion("material_id <=", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdLike(String value) {
            addCriterion("material_id like", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotLike(String value) {
            addCriterion("material_id not like", value, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdIn(List<String> values) {
            addCriterion("material_id in", values, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotIn(List<String> values) {
            addCriterion("material_id not in", values, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdBetween(String value1, String value2) {
            addCriterion("material_id between", value1, value2, "materialId");
            return (Criteria) this;
        }

        public Criteria andMaterialIdNotBetween(String value1, String value2) {
            addCriterion("material_id not between", value1, value2, "materialId");
            return (Criteria) this;
        }

        public Criteria andMeIdIsNull() {
            addCriterion("me_id is null");
            return (Criteria) this;
        }

        public Criteria andMeIdIsNotNull() {
            addCriterion("me_id is not null");
            return (Criteria) this;
        }

        public Criteria andMeIdEqualTo(String value) {
            addCriterion("me_id =", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdNotEqualTo(String value) {
            addCriterion("me_id <>", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdGreaterThan(String value) {
            addCriterion("me_id >", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdGreaterThanOrEqualTo(String value) {
            addCriterion("me_id >=", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdLessThan(String value) {
            addCriterion("me_id <", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdLessThanOrEqualTo(String value) {
            addCriterion("me_id <=", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdLike(String value) {
            addCriterion("me_id like", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdNotLike(String value) {
            addCriterion("me_id not like", value, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdIn(List<String> values) {
            addCriterion("me_id in", values, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdNotIn(List<String> values) {
            addCriterion("me_id not in", values, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdBetween(String value1, String value2) {
            addCriterion("me_id between", value1, value2, "meId");
            return (Criteria) this;
        }

        public Criteria andMeIdNotBetween(String value1, String value2) {
            addCriterion("me_id not between", value1, value2, "meId");
            return (Criteria) this;
        }

        public Criteria andBarCodeIsNull() {
            addCriterion("bar_code is null");
            return (Criteria) this;
        }

        public Criteria andBarCodeIsNotNull() {
            addCriterion("bar_code is not null");
            return (Criteria) this;
        }

        public Criteria andBarCodeEqualTo(String value) {
            addCriterion("bar_code =", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeNotEqualTo(String value) {
            addCriterion("bar_code <>", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeGreaterThan(String value) {
            addCriterion("bar_code >", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeGreaterThanOrEqualTo(String value) {
            addCriterion("bar_code >=", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeLessThan(String value) {
            addCriterion("bar_code <", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeLessThanOrEqualTo(String value) {
            addCriterion("bar_code <=", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeLike(String value) {
            addCriterion("bar_code like", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeNotLike(String value) {
            addCriterion("bar_code not like", value, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeIn(List<String> values) {
            addCriterion("bar_code in", values, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeNotIn(List<String> values) {
            addCriterion("bar_code not in", values, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeBetween(String value1, String value2) {
            addCriterion("bar_code between", value1, value2, "barCode");
            return (Criteria) this;
        }

        public Criteria andBarCodeNotBetween(String value1, String value2) {
            addCriterion("bar_code not between", value1, value2, "barCode");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitIsNull() {
            addCriterion("commodity_unit is null");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitIsNotNull() {
            addCriterion("commodity_unit is not null");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitEqualTo(String value) {
            addCriterion("commodity_unit =", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitNotEqualTo(String value) {
            addCriterion("commodity_unit <>", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitGreaterThan(String value) {
            addCriterion("commodity_unit >", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitGreaterThanOrEqualTo(String value) {
            addCriterion("commodity_unit >=", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitLessThan(String value) {
            addCriterion("commodity_unit <", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitLessThanOrEqualTo(String value) {
            addCriterion("commodity_unit <=", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitLike(String value) {
            addCriterion("commodity_unit like", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitNotLike(String value) {
            addCriterion("commodity_unit not like", value, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitIn(List<String> values) {
            addCriterion("commodity_unit in", values, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitNotIn(List<String> values) {
            addCriterion("commodity_unit not in", values, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitBetween(String value1, String value2) {
            addCriterion("commodity_unit between", value1, value2, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andCommodityUnitNotBetween(String value1, String value2) {
            addCriterion("commodity_unit not between", value1, value2, "commodityUnit");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIsNull() {
            addCriterion("unit_price is null");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIsNotNull() {
            addCriterion("unit_price is not null");
            return (Criteria) this;
        }

        public Criteria andUnitPriceEqualTo(BigDecimal value) {
            addCriterion("unit_price =", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotEqualTo(BigDecimal value) {
            addCriterion("unit_price <>", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceGreaterThan(BigDecimal value) {
            addCriterion("unit_price >", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("unit_price >=", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceLessThan(BigDecimal value) {
            addCriterion("unit_price <", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("unit_price <=", value, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceIn(List<BigDecimal> values) {
            addCriterion("unit_price in", values, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotIn(List<BigDecimal> values) {
            addCriterion("unit_price not in", values, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unit_price between", value1, value2, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unit_price not between", value1, value2, "unitPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNull() {
            addCriterion("discount is null");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNotNull() {
            addCriterion("discount is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountEqualTo(BigDecimal value) {
            addCriterion("discount =", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotEqualTo(BigDecimal value) {
            addCriterion("discount <>", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThan(BigDecimal value) {
            addCriterion("discount >", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("discount >=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThan(BigDecimal value) {
            addCriterion("discount <", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("discount <=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountIn(List<BigDecimal> values) {
            addCriterion("discount in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotIn(List<BigDecimal> values) {
            addCriterion("discount not in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount not between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceIsNull() {
            addCriterion("special_price is null");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceIsNotNull() {
            addCriterion("special_price is not null");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceEqualTo(BigDecimal value) {
            addCriterion("special_price =", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceNotEqualTo(BigDecimal value) {
            addCriterion("special_price <>", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceGreaterThan(BigDecimal value) {
            addCriterion("special_price >", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("special_price >=", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceLessThan(BigDecimal value) {
            addCriterion("special_price <", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("special_price <=", value, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceIn(List<BigDecimal> values) {
            addCriterion("special_price in", values, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceNotIn(List<BigDecimal> values) {
            addCriterion("special_price not in", values, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("special_price between", value1, value2, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andSpecialPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("special_price not between", value1, value2, "specialPrice");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityIsNull() {
            addCriterion("limit_quantity is null");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityIsNotNull() {
            addCriterion("limit_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityEqualTo(Integer value) {
            addCriterion("limit_quantity =", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityNotEqualTo(Integer value) {
            addCriterion("limit_quantity <>", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityGreaterThan(Integer value) {
            addCriterion("limit_quantity >", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityGreaterThanOrEqualTo(Integer value) {
            addCriterion("limit_quantity >=", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityLessThan(Integer value) {
            addCriterion("limit_quantity <", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityLessThanOrEqualTo(Integer value) {
            addCriterion("limit_quantity <=", value, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityIn(List<Integer> values) {
            addCriterion("limit_quantity in", values, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityNotIn(List<Integer> values) {
            addCriterion("limit_quantity not in", values, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityBetween(Integer value1, Integer value2) {
            addCriterion("limit_quantity between", value1, value2, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitQuantityNotBetween(Integer value1, Integer value2) {
            addCriterion("limit_quantity not between", value1, value2, "limitQuantity");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeIsNull() {
            addCriterion("limit_cumulative is null");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeIsNotNull() {
            addCriterion("limit_cumulative is not null");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeEqualTo(Integer value) {
            addCriterion("limit_cumulative =", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeNotEqualTo(Integer value) {
            addCriterion("limit_cumulative <>", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeGreaterThan(Integer value) {
            addCriterion("limit_cumulative >", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeGreaterThanOrEqualTo(Integer value) {
            addCriterion("limit_cumulative >=", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeLessThan(Integer value) {
            addCriterion("limit_cumulative <", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeLessThanOrEqualTo(Integer value) {
            addCriterion("limit_cumulative <=", value, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeIn(List<Integer> values) {
            addCriterion("limit_cumulative in", values, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeNotIn(List<Integer> values) {
            addCriterion("limit_cumulative not in", values, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeBetween(Integer value1, Integer value2) {
            addCriterion("limit_cumulative between", value1, value2, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andLimitCumulativeNotBetween(Integer value1, Integer value2) {
            addCriterion("limit_cumulative not between", value1, value2, "limitCumulative");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionIsNull() {
            addCriterion("quantity_promotion is null");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionIsNotNull() {
            addCriterion("quantity_promotion is not null");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionEqualTo(Integer value) {
            addCriterion("quantity_promotion =", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionNotEqualTo(Integer value) {
            addCriterion("quantity_promotion <>", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionGreaterThan(Integer value) {
            addCriterion("quantity_promotion >", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionGreaterThanOrEqualTo(Integer value) {
            addCriterion("quantity_promotion >=", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionLessThan(Integer value) {
            addCriterion("quantity_promotion <", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionLessThanOrEqualTo(Integer value) {
            addCriterion("quantity_promotion <=", value, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionIn(List<Integer> values) {
            addCriterion("quantity_promotion in", values, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionNotIn(List<Integer> values) {
            addCriterion("quantity_promotion not in", values, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionBetween(Integer value1, Integer value2) {
            addCriterion("quantity_promotion between", value1, value2, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andQuantityPromotionNotBetween(Integer value1, Integer value2) {
            addCriterion("quantity_promotion not between", value1, value2, "quantityPromotion");
            return (Criteria) this;
        }

        public Criteria andFullAmoutIsNull() {
            addCriterion("full_amout is null");
            return (Criteria) this;
        }

        public Criteria andFullAmoutIsNotNull() {
            addCriterion("full_amout is not null");
            return (Criteria) this;
        }

        public Criteria andFullAmoutEqualTo(BigDecimal value) {
            addCriterion("full_amout =", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutNotEqualTo(BigDecimal value) {
            addCriterion("full_amout <>", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutGreaterThan(BigDecimal value) {
            addCriterion("full_amout >", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("full_amout >=", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutLessThan(BigDecimal value) {
            addCriterion("full_amout <", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutLessThanOrEqualTo(BigDecimal value) {
            addCriterion("full_amout <=", value, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutIn(List<BigDecimal> values) {
            addCriterion("full_amout in", values, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutNotIn(List<BigDecimal> values) {
            addCriterion("full_amout not in", values, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("full_amout between", value1, value2, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andFullAmoutNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("full_amout not between", value1, value2, "fullAmout");
            return (Criteria) this;
        }

        public Criteria andCreditAmountIsNull() {
            addCriterion("credit_amount is null");
            return (Criteria) this;
        }

        public Criteria andCreditAmountIsNotNull() {
            addCriterion("credit_amount is not null");
            return (Criteria) this;
        }

        public Criteria andCreditAmountEqualTo(BigDecimal value) {
            addCriterion("credit_amount =", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountNotEqualTo(BigDecimal value) {
            addCriterion("credit_amount <>", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountGreaterThan(BigDecimal value) {
            addCriterion("credit_amount >", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("credit_amount >=", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountLessThan(BigDecimal value) {
            addCriterion("credit_amount <", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("credit_amount <=", value, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountIn(List<BigDecimal> values) {
            addCriterion("credit_amount in", values, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountNotIn(List<BigDecimal> values) {
            addCriterion("credit_amount not in", values, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("credit_amount between", value1, value2, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andCreditAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("credit_amount not between", value1, value2, "creditAmount");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityIsNull() {
            addCriterion("purchase_quantity is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityIsNotNull() {
            addCriterion("purchase_quantity is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityEqualTo(BigDecimal value) {
            addCriterion("purchase_quantity =", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityNotEqualTo(BigDecimal value) {
            addCriterion("purchase_quantity <>", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityGreaterThan(BigDecimal value) {
            addCriterion("purchase_quantity >", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("purchase_quantity >=", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityLessThan(BigDecimal value) {
            addCriterion("purchase_quantity <", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityLessThanOrEqualTo(BigDecimal value) {
            addCriterion("purchase_quantity <=", value, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityIn(List<BigDecimal> values) {
            addCriterion("purchase_quantity in", values, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityNotIn(List<BigDecimal> values) {
            addCriterion("purchase_quantity not in", values, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("purchase_quantity between", value1, value2, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andPurchaseQuantityNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("purchase_quantity not between", value1, value2, "purchaseQuantity");
            return (Criteria) this;
        }

        public Criteria andTenantIdIsNull() {
            addCriterion("tenant_id is null");
            return (Criteria) this;
        }

        public Criteria andTenantIdIsNotNull() {
            addCriterion("tenant_id is not null");
            return (Criteria) this;
        }

        public Criteria andTenantIdEqualTo(String value) {
            addCriterion("tenant_id =", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdNotEqualTo(String value) {
            addCriterion("tenant_id <>", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdGreaterThan(String value) {
            addCriterion("tenant_id >", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdGreaterThanOrEqualTo(String value) {
            addCriterion("tenant_id >=", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdLessThan(String value) {
            addCriterion("tenant_id <", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdLessThanOrEqualTo(String value) {
            addCriterion("tenant_id <=", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdLike(String value) {
            addCriterion("tenant_id like", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdNotLike(String value) {
            addCriterion("tenant_id not like", value, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdIn(List<String> values) {
            addCriterion("tenant_id in", values, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdNotIn(List<String> values) {
            addCriterion("tenant_id not in", values, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdBetween(String value1, String value2) {
            addCriterion("tenant_id between", value1, value2, "tenantId");
            return (Criteria) this;
        }

        public Criteria andTenantIdNotBetween(String value1, String value2) {
            addCriterion("tenant_id not between", value1, value2, "tenantId");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNull() {
            addCriterion("delete_flag is null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNotNull() {
            addCriterion("delete_flag is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagEqualTo(String value) {
            addCriterion("delete_flag =", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotEqualTo(String value) {
            addCriterion("delete_flag <>", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThan(String value) {
            addCriterion("delete_flag >", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) {
            addCriterion("delete_flag >=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThan(String value) {
            addCriterion("delete_flag <", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThanOrEqualTo(String value) {
            addCriterion("delete_flag <=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLike(String value) {
            addCriterion("delete_flag like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotLike(String value) {
            addCriterion("delete_flag not like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIn(List<String> values) {
            addCriterion("delete_flag in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotIn(List<String> values) {
            addCriterion("delete_flag not in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagBetween(String value1, String value2) {
            addCriterion("delete_flag between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotBetween(String value1, String value2) {
            addCriterion("delete_flag not between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagIsNull() {
            addCriterion("upload_flag is null");
            return (Criteria) this;
        }

        public Criteria andUploadFlagIsNotNull() {
            addCriterion("upload_flag is not null");
            return (Criteria) this;
        }

        public Criteria andUploadFlagEqualTo(String value) {
            addCriterion("upload_flag =", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagNotEqualTo(String value) {
            addCriterion("upload_flag <>", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagGreaterThan(String value) {
            addCriterion("upload_flag >", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagGreaterThanOrEqualTo(String value) {
            addCriterion("upload_flag >=", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagLessThan(String value) {
            addCriterion("upload_flag <", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagLessThanOrEqualTo(String value) {
            addCriterion("upload_flag <=", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagLike(String value) {
            addCriterion("upload_flag like", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagNotLike(String value) {
            addCriterion("upload_flag not like", value, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagIn(List<String> values) {
            addCriterion("upload_flag in", values, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagNotIn(List<String> values) {
            addCriterion("upload_flag not in", values, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagBetween(String value1, String value2) {
            addCriterion("upload_flag between", value1, value2, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUploadFlagNotBetween(String value1, String value2) {
            addCriterion("upload_flag not between", value1, value2, "uploadFlag");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}